package com.elmcode.server.controller.app;

import com.elmcode.server.constant.CartConst;
import com.elmcode.server.service.CartService;
import com.elmcode.server.utils.Result;
import com.elmcode.server.vo.CartVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;


@Slf4j
@Api(tags = "购物车接口")
@RestController
@RequestMapping("app/cart")
public class CartController {

    @Autowired
    CartService cartService;

    /**
     * 需要传入 当前菜品的id  以及  数量默认为1
     * @return
     */
    @ApiOperation("添加购物车接口")
    @PostMapping("/plus")
    public Result addToCart(Long foodId,String flavorItem,String flavorValue){

        cartService.addOrDelToCart(foodId,flavorItem,flavorValue, CartConst.ADD_OPS);

        return Result.ok("添加成功");
    }


    /**
     * 需要传入 当前菜品的id  以及  数量默认为1
     * @return
     */
    @ApiOperation("删除购物车cartItem数量")
    @GetMapping("/mimus")
    public Result deleteNumCart(Long foodId,String flavorName,String flavorValue){

        cartService.addOrDelToCart(foodId,flavorName,flavorValue, CartConst.DEL_OPS);
        return Result.ok("添加成功");
    }

    /**
     * 需要传入 当前菜品的id  以及  数量默认为1
     * @return
     */
    @ApiOperation("获取购物车")
    @GetMapping
    public Result cartList(){

        CartVo cartVo = cartService.getCart();

        return Result.ok("添加成功",cartVo.getCartItemVos());
    }


    /**
     * 需要传入 当前菜品的id  以及  数量默认为1
     * @return
     */
    @ApiOperation("清空购物车")
    @GetMapping("/clearCart")
    public Result clearList(){

        cartService.clearCart();
        return Result.ok("清空购物车成功");
    }

}
